﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados.ValueObjects;
using Dados.Interfaces;
using Dados.INFTURDataSetTableAdapters;

namespace Dados.ClassesSQLServer
{
    public class VPassagemSQLServer :IVendaPassagem
    {
        T_VENDAPASSAGEMTableAdapter VPassagemTA = new T_VENDAPASSAGEMTableAdapter();

        #region IVPassagem Members

        public int Insere(VPassagemVO pVO)
        {
            try
            {
                return VPassagemTA.Insert(pVO.Cliente,pVO.Usuario, pVO.Preco, pVO.Companhia, 
                    pVO.DataIda, pVO.DataVolta, pVO.Classe,pVO.Destino);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }

        public int Atualiza(VPassagemVO pVO)
        {
            try
            {
                return VPassagemTA.Update(pVO.Cliente, pVO.Usuario,pVO.Preco, pVO.Companhia, 
                    pVO.DataIda, pVO.DataVolta, pVO.Classe, pVO.Destino, pVO.Id);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }

        public int Remove(int id)
        {
            try
            {
                return VPassagemTA.Delete(id);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }

        public VPassagemVO Consulta(int id)
        {
            try
            {
                VPassagemVO pVO = null;
                INFTURDataSet.T_VENDAPASSAGEMDataTable dtVPassagem = VPassagemTA.GetVendaPassagemPorId(id);
                if (dtVPassagem.Count > 0)
                {
                    pVO = new VPassagemVO();
                    pVO.Id = dtVPassagem[0].nr_id;
                    pVO.Cliente = dtVPassagem[0].tx_cliente;
                    pVO.Preco = dtVPassagem[0].nr_preco;
                    pVO.Companhia = dtVPassagem[0].tx_companhia;
                    pVO.DataIda = dtVPassagem[0].dt_ida;
                    pVO.DataVolta = dtVPassagem[0].dt_volta;
                    pVO.Classe = dtVPassagem[0].nr_classe;
                    pVO.Usuario = dtVPassagem[0].tx_usuario;
                    pVO.Destino = dtVPassagem[0].nr_destino;
                }
                return pVO;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }

        public List<VPassagemVO> ConsultaTodos()
        {
            try
            {
                List<VPassagemVO> lpVO = new List<VPassagemVO>();
                INFTURDataSet.T_VENDAPASSAGEMDataTable dtVPassagem = VPassagemTA.GetData();

                foreach(INFTURDataSet.T_VENDAPASSAGEMRow cRow in dtVPassagem)
                {
                    VPassagemVO pVO = new VPassagemVO();

                    pVO.Id = cRow.nr_id;
                    pVO.Cliente = cRow.tx_cliente;
                    pVO.Preco = cRow.nr_preco;
                    pVO.Companhia = cRow.tx_companhia;
                    pVO.DataIda = cRow.dt_ida;
                    pVO.DataVolta = cRow.dt_volta;
                    pVO.Classe = cRow.nr_classe;
                    pVO.Usuario = cRow.tx_usuario;
                    pVO.Destino = cRow.nr_destino;

                    lpVO.Add(pVO);
                }

                return lpVO;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }

        #endregion
        
    }
}
